草庐IT

Ruby File 类和方法

全部标签

Ruby class_eval 方法

我正在尝试弄清楚如何动态创建方法classMyClassdefinitialize(dynamic_methods)@arr=Array.new(dynamic_methods)@arr.each{|m|self.class.class_evaldodefm(*value)putsvalueendend}endendtmp=MyClass.new['method1','method2','method3']不幸的是,这只会创建方法m但我需要根据m的值创建方法,想法? 最佳答案 有两种可接受的方式:使用define_method:@a

ruby-on-rails - 在 Rails 中从控制台调用 ApplicationController 方法

在Rails中,假设文件已经加载,如何从控制台调用此示例中的my_method?#some_file.rbclassMyClass 最佳答案 另一种非常简单的方法是使用ApplicationController本身的实例。ApplicationController然后在控制台中,您可以执行以下操作:>>ApplicationController.new.example这将输出以下内容:OHAI当然,这有一个限制,即不能访问正常请求的所有内容,例如request对象本身。如果您需要这个,正如PatrickKlingemann所建议的那

ruby - 使用 Ruby 删除数组中字符串的最佳方法

假设我有这个数组:array=["str1","str2","str3","str4","str5","str6","str7","str8"]我在做什么:array.delete_if{|i|i=="str1"||i=="str3"||i=="str5"}我得到了:["str2","str4","str6","str7","str8"]在ruby​​中有没有更好的方法来做到这一点? 最佳答案 你可以这样做:array-%w{str1str2str3}请注意,这将返回一个删除了"str1"、"str2"和"str3"的新数组,而不是

ruby-on-rails - Ruby - 如何在其内部获取方法名称?

这个问题在这里已经有了答案:Getthenameofthecurrentlyexecutingmethod(5个答案)关闭8年前。我正在尝试从自身获取方法名称:deffunky_methodself.inspectend它返回“main”。我怎样才能返回“funky_method”呢?

ruby - ruby 是否有 bool 值的数组求和方法?

Ruby让你可以做[5,5,5].sum=>15有什么可以对数组进行bool运算吗[true,true,true].sum=>true[true,false,true].sum=>false 最佳答案 [true,true,true].all?将返回true。[true,false,true].all?将返回false。此外,如果你想对值进行bool值或操作:[true,false,true].any?返回真。 关于ruby-ruby是否有bool值的数组求和方法?,我们在StackOv

Ruby:Hash.keys 和 Hash.values 方法返回的键/值的顺序是什么?

它是否与项目添加到哈希的顺序相同? 最佳答案 顶部theRuby1.9.2documentationfortheHashclass声明:Hashesenumeratetheirvaluesintheorderthatthecorrespondingkeyswereinserted.粗略的测试表明这确实适用于Hash#keys和Hash#values,尽管这些方法的相应文档似乎没有具体说明。 关于Ruby:Hash.keys和Hash.values方法返回的键/值的顺序是什么?,我们在St

ruby-on-rails - 项目 :Class 的未定义方法 `model_name'

我已经查看了所有相关问题,但对我来说没有什么新鲜事。我有一个带有"new"Action的项目ControllerclassProjectsController项目是一个简单的类,不是事件记录:classProjectattr_accessor:name,:descriptiondefinitialize@name=""@description=""endend我得到错误“项目:类的未定义方法‘model_name’”这是一个erb文件示例:: 最佳答案 如果Project不是事件记录子类,你需要这些,你可以使用form_forcla

ruby-on-rails - 使用 Devise for Rails 禁止/阻止用户的最佳方法是什么?

我在我的Rails应用程序中使用Devise进行身份验证,我希望能够阻止某些帐户并防止用户使用被阻止的电子邮件重新注册。我只是不确定最好的方法是什么。我的第一个想法是覆盖session和注册Controller,以检查模型中是否存在被阻止的用户,但我觉得可能有更优雅的方法。 最佳答案 最好的方法是以设计方式来做:以下假设您使用的是Devisedatabase_authenticatable模块,并且您的应用程序的用户模型名称为User。1。实现account_active?方法。在users表中添加booleanaccount_ac

ruby - 大多数方法中的 "This is a stub, used for indexing"?

我正在研究cursesgem的curses.rb,我发现它无处不在:defattrset(attrs)#Thisisastub,usedforindexingend#bkgdset(ch)##Manipulatethebackgroundofthecurrentwindow#withcharacterInteger+ch+##seealsoCurses.bkgdsetdefbkgdset(ch)#Thisisastub,usedforindexingend#bkgd(ch)##Setthebackgroundofthecurrentwindow#andapplycharacterInt

Ruby:从文本文件中随机选择一行的优雅方法是什么?

我已经看到了一些非常漂亮的Ruby示例,我正在努力改变我的想法,以便能够制作它们,而不是仅仅欣赏它们。这是我能想到的从文件中随机选择一行的最佳方法:defpick_random_linerandom_line=nilFile.open("data.txt")do|file|file_lines=file.readlines()random_line=file_lines[Random.rand(0...file_lines.size())]endrandom_lineend我觉得有可能以更短、更优雅的方式执行此操作,而无需将整个文件的内容存储在内存中。有吗?